/*********************************************************************
 Copyright 2014 the Flapi authors

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 ********************************************************************/

package unquietcode.tools.flapi;

/**
 * A ClassReference is similar to a {@link Class} object, but
 * acts only as a reference to the fully qualified type (class or
 * interface). This special container is used within the Flapi
 * descriptor builder to avoid requiring a class to be present
 * at runtime.
 *
 * @author Ben Fagin
 * @version 2014-07-22
 */
public class ClassReference {
	private final String fqcn;

	public ClassReference(String fqcn) {
		if (fqcn == null || fqcn.trim().isEmpty()) {
			throw new IllegalArgumentException("a fully qualified class name is required");
		}
		this.fqcn = fqcn;
	}

	public String getFQCN() {
		return fqcn;
	}
}